module.exports = {
  /**
   * 日期格式化
   * @param  {Object} date   时间对象 可以是 Date Interval String
   * @param  {String} format 如 yyyy-MM-dd hh:mm:ss
   * @return {String}
   */
  formatDatetime: function (date, format) {
    if ('string' === typeof date) {
      date = new Date(date);
    }

    if ('number' === typeof date) {
      if (date <= 9999999999) {
        date *= 1000;
      }
      date = new Date(date);
    }

    var o = {
      "M+" : date.getMonth()+1, //month
      "d+" : date.getDate(), //day
      "h+" : date.getHours(), //hour
      "m+" : date.getMinutes(), //minute
      "s+" : date.getSeconds(), //second
      "q+" : Math.floor((date.getMonth()+3)/3), //quarter
      "S" : date.getMilliseconds() //millisecond
    }

    format = format || 'yyyy-MM-dd hh:mm:ss';

    if (/(y+)/.test(format)) {
      format = format.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
    }

    for (var k in o) {
      if (new RegExp("("+ k +")").test(format)) {
        format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
      }
    }
    return format;
  },


  formatDate: function (date, format) {
    return this.formatDatetime(date, format || 'yyyy-MM-dd');
  },

  formatTime: function (date, format) {
    return this.formatDatetime(date, format || 'hh:mm:ss');
  }
};
